package com.ruoyi.zhongchuangauto.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单主表对象 order_master
 *
 * @author ruoyi
 * @date 2025-09-18
 */
@ExcelIgnoreUnannotated
public class OrderMaster extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long orderId;

    /** 订单编号（业务号） */
    @Excel(name = "订单编号", readConverterExp = "业=务号")
    private String orderNo;

    /** 快递公司 */
    @Excel(name = "快递公司")
    private String dictExpress;

    /** 快递单号 */
    @Excel(name = "快递单号")
    private String expressNo;

    /** 包裹中商品件数 */
    @Excel(name = "包裹中商品件数")
    private Integer packageQty;

    /** 子订单编号（业务号） */
    @Excel(name = "子订单编号", readConverterExp = "业=务号")
    private String subOrderNo;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 商品ID（业务编码） */
    @Excel(name = "商品ID", readConverterExp = "业=务编码")
    private String productCode;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 规格信息 */
    @Excel(name = "规格信息")
    private String specInfo;

    /** 商品识别码/SKU */
    @Excel(name = "商品识别码/SKU")
    private String productSpec;

    /** 购买件数 */
    @Excel(name = "购买件数")
    private Long quantity;

    /** 兑换单价(元) */
    @Excel(name = "兑换单价(元)")
    private BigDecimal unitPrice;

    /** 商品总价(元) */
    @Excel(name = "商品总价(元)")
    private BigDecimal totalPrice;

    /** 优惠券(元) */
    @Excel(name = "优惠券(元)")
    private BigDecimal couponAmt;

    /** 商品实付(元) */
    @Excel(name = "商品实付(元)")
    private BigDecimal realPay;

    /** 1未发货 2已发货 3已结算4已退款 */
    @Excel(name = "1未发货 2已发货 3已结算4已退款")
    private Integer deliveryStatus;

    /** 是否有进行中的退款1是0否  */
    @Excel(name = "是否有进行中的退款1是0否 ")
    private Integer refundIng;

    /** 收货人姓名 */
    @Excel(name = "收货人姓名")
    private String receiver;

    /** 收货人电话 */
    @Excel(name = "收货人电话")
    private String mobile;

    /** 省 */
    @Excel(name = "省")
    private String province;

    /** 市 */
    @Excel(name = "市")
    private String city;

    /** 区县 */
    @Excel(name = "区县")
    private String district;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String detail;

    /** 商家 */
    @Excel(name = "商家")
    private String merchantName;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String merchantEmail;

    /** 邮件状态 */
    @Excel(name = "邮件状态")
    private Integer mailSent;

    /** 邮件发送时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "邮件发送时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date mailSentTime;

    /** 邮件回传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "邮件回传时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date mailReturnTime;

    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId()
    {
        return orderId;
    }
    public void setOrderNo(String orderNo)
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo()
    {
        return orderNo;
    }
    public void setDictExpress(String dictExpress)
    {
        this.dictExpress = dictExpress;
    }

    public String getDictExpress()
    {
        return dictExpress;
    }
    public void setExpressNo(String expressNo)
    {
        this.expressNo = expressNo;
    }

    public String getExpressNo()
    {
        return expressNo;
    }
    public void setPackageQty(Integer packageQty)
    {
        this.packageQty = packageQty;
    }

    public Integer getPackageQty()
    {
        return packageQty;
    }
    public void setSubOrderNo(String subOrderNo)
    {
        this.subOrderNo = subOrderNo;
    }

    public String getSubOrderNo()
    {
        return subOrderNo;
    }
    public void setOrderTime(Date orderTime)
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime()
    {
        return orderTime;
    }
    public void setProductCode(String productCode)
    {
        this.productCode = productCode;
    }

    public String getProductCode()
    {
        return productCode;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }
    public void setSpecInfo(String specInfo)
    {
        this.specInfo = specInfo;
    }

    public String getSpecInfo()
    {
        return specInfo;
    }
    public void setProductSpec(String productSpec)
    {
        this.productSpec = productSpec;
    }

    public String getProductSpec()
    {
        return productSpec;
    }
    public void setQuantity(Long quantity)
    {
        this.quantity = quantity;
    }

    public Long getQuantity()
    {
        return quantity;
    }
    public void setUnitPrice(BigDecimal unitPrice)
    {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getUnitPrice()
    {
        return unitPrice;
    }
    public void setTotalPrice(BigDecimal totalPrice)
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice()
    {
        return totalPrice;
    }
    public void setCouponAmt(BigDecimal couponAmt)
    {
        this.couponAmt = couponAmt;
    }

    public BigDecimal getCouponAmt()
    {
        return couponAmt;
    }
    public void setRealPay(BigDecimal realPay)
    {
        this.realPay = realPay;
    }

    public BigDecimal getRealPay()
    {
        return realPay;
    }
    public void setDeliveryStatus(Integer deliveryStatus)
    {
        this.deliveryStatus = deliveryStatus;
    }

    public Integer getDeliveryStatus()
    {
        return deliveryStatus;
    }
    public void setRefundIng(Integer refundIng)
    {
        this.refundIng = refundIng;
    }

    public Integer getRefundIng()
    {
        return refundIng;
    }
    public void setReceiver(String receiver)
    {
        this.receiver = receiver;
    }

    public String getReceiver()
    {
        return receiver;
    }
    public void setMobile(String mobile)
    {
        this.mobile = mobile;
    }

    public String getMobile()
    {
        return mobile;
    }
    public void setProvince(String province)
    {
        this.province = province;
    }

    public String getProvince()
    {
        return province;
    }
    public void setCity(String city)
    {
        this.city = city;
    }

    public String getCity()
    {
        return city;
    }
    public void setDistrict(String district)
    {
        this.district = district;
    }

    public String getDistrict()
    {
        return district;
    }
    public void setDetail(String detail)
    {
        this.detail = detail;
    }

    public String getDetail()
    {
        return detail;
    }
    public void setMerchantName(String merchantName)
    {
        this.merchantName = merchantName;
    }

    public String getMerchantName()
    {
        return merchantName;
    }
    public void setMerchantEmail(String merchantEmail)
    {
        this.merchantEmail = merchantEmail;
    }

    public String getMerchantEmail()
    {
        return merchantEmail;
    }
    public void setMailSent(Integer mailSent)
    {
        this.mailSent = mailSent;
    }

    public Integer getMailSent()
    {
        return mailSent;
    }
    public void setMailSentTime(Date mailSentTime)
    {
        this.mailSentTime = mailSentTime;
    }

    public Date getMailSentTime()
    {
        return mailSentTime;
    }
    public void setMailReturnTime(Date mailReturnTime)
    {
        this.mailReturnTime = mailReturnTime;
    }

    public Date getMailReturnTime()
    {
        return mailReturnTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("orderNo", getOrderNo())
            .append("dictExpress", getDictExpress())
            .append("expressNo", getExpressNo())
            .append("packageQty", getPackageQty())
            .append("subOrderNo", getSubOrderNo())
            .append("orderTime", getOrderTime())
            .append("productCode", getProductCode())
            .append("productName", getProductName())
            .append("specInfo", getSpecInfo())
            .append("productSpec", getProductSpec())
            .append("quantity", getQuantity())
            .append("unitPrice", getUnitPrice())
            .append("totalPrice", getTotalPrice())
            .append("couponAmt", getCouponAmt())
            .append("realPay", getRealPay())
            .append("deliveryStatus", getDeliveryStatus())
            .append("refundIng", getRefundIng())
            .append("receiver", getReceiver())
            .append("mobile", getMobile())
            .append("province", getProvince())
            .append("city", getCity())
            .append("district", getDistrict())
            .append("detail", getDetail())
            .append("remark", getRemark())
            .append("merchantName", getMerchantName())
            .append("merchantEmail", getMerchantEmail())
            .append("mailSent", getMailSent())
            .append("mailSentTime", getMailSentTime())
            .append("mailReturnTime", getMailReturnTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
